[backport cloud/1.48] feat: add ComfyUI frontend version to Datadog RUM - #14520
Conversation
## Summary Expose `comfyui_frontend_version` on Datadog RUM events so dashboard traffic can be filtered by the frontend release. ## Changes - **What**: Set `comfyui_frontend_version` directly from `__COMFYUI_FRONTEND_VERSION__` before RUM initialization. - **Tests**: Cover the new context for classified traffic and frontend-context probe failure paths. ## Review Focus Confirm that the attribute name and build-time frontend version match the dashboard contract. Created by Codex --------- Co-authored-by: huang47 <157390+huang47@users.noreply.github.com>
📄 Knowledge reviewDosu skipped reviewing this PR because your organization has used its |
🎭 Playwright: ✅ 1761 passed, 0 failed · 1 flaky📊 Browser Reports
🎨 Storybook: ✅ Built — View Storybook📦 Bundle Size
⚡ Performance Report
Absolute values
Raw data{
"timestamp": "2026-07-31T23:58:34.585Z",
"gitSha": "c38f4add1e0315cb2a5830244ded5b624f876108",
"branch": "backport-14235-to-cloud-1.48",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2008.895999999993,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.943999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 490.034,
"heapDeltaBytes": 3738568,
"heapUsedBytes": 71549548,
"domNodes": 20,
"jsHeapTotalBytes": 20316160,
"scriptDurationMs": 13.852,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "canvas-idle",
"durationMs": 2027.242000000001,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.184000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 466.46000000000004,
"heapDeltaBytes": 3458876,
"heapUsedBytes": 71199660,
"domNodes": 18,
"jsHeapTotalBytes": 21102592,
"scriptDurationMs": 13.835999999999999,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1833.281999999997,
"styleRecalcs": 75,
"styleRecalcDurationMs": 36.678000000000004,
"layouts": 12,
"layoutDurationMs": 3.4270000000000005,
"taskDurationMs": 855.399,
"heapDeltaBytes": -17811772,
"heapUsedBytes": 50162764,
"domNodes": -274,
"jsHeapTotalBytes": 20967424,
"scriptDurationMs": 122.33300000000001,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1922.3279999999932,
"styleRecalcs": 76,
"styleRecalcDurationMs": 39.160000000000004,
"layouts": 12,
"layoutDurationMs": 3.4499999999999997,
"taskDurationMs": 878.577,
"heapDeltaBytes": -16128172,
"heapUsedBytes": 51644592,
"domNodes": -272,
"jsHeapTotalBytes": 20180992,
"scriptDurationMs": 123.185,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1728.887000000043,
"styleRecalcs": 30,
"styleRecalcDurationMs": 15.191999999999998,
"layouts": 6,
"layoutDurationMs": 0.5469999999999999,
"taskDurationMs": 353.415,
"heapDeltaBytes": 7343728,
"heapUsedBytes": 75109340,
"domNodes": 75,
"jsHeapTotalBytes": 20054016,
"scriptDurationMs": 16.826,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.660000000000007,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1772.0620000000054,
"styleRecalcs": 30,
"styleRecalcDurationMs": 16.03,
"layouts": 6,
"layoutDurationMs": 0.6259999999999998,
"taskDurationMs": 364.31,
"heapDeltaBytes": 7285828,
"heapUsedBytes": 75204800,
"domNodes": 77,
"jsHeapTotalBytes": 20316160,
"scriptDurationMs": 17.459999999999997,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "dom-widget-clipping",
"durationMs": 559.6099999999637,
"styleRecalcs": 12,
"styleRecalcDurationMs": 8.581999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 354.30699999999996,
"heapDeltaBytes": -12368332,
"heapUsedBytes": 55571284,
"domNodes": 20,
"jsHeapTotalBytes": 21364736,
"scriptDurationMs": 55.49799999999999,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 574.107999999967,
"styleRecalcs": 12,
"styleRecalcDurationMs": 8.345,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 375.318,
"heapDeltaBytes": -12317656,
"heapUsedBytes": 55576060,
"domNodes": 20,
"jsHeapTotalBytes": 21889024,
"scriptDurationMs": 58.669,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2032.6620000000162,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.727000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 653.6679999999999,
"heapDeltaBytes": 7040080,
"heapUsedBytes": 68476768,
"domNodes": -273,
"jsHeapTotalBytes": 4784128,
"scriptDurationMs": 100.23899999999999,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-idle",
"durationMs": 2023.0430000000297,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.296000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 660.4949999999998,
"heapDeltaBytes": 6291896,
"heapUsedBytes": 65196204,
"domNodes": -273,
"jsHeapTotalBytes": 4521984,
"scriptDurationMs": 102.72900000000001,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-pan",
"durationMs": 2172.452000000021,
"styleRecalcs": 69,
"styleRecalcDurationMs": 13.716999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1281.099,
"heapDeltaBytes": 5756892,
"heapUsedBytes": 65588628,
"domNodes": -277,
"jsHeapTotalBytes": 4988928,
"scriptDurationMs": 447.65,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-pan",
"durationMs": 2151.760999999965,
"styleRecalcs": 68,
"styleRecalcDurationMs": 13.686,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1237.613,
"heapDeltaBytes": 4355508,
"heapUsedBytes": 64080448,
"domNodes": -277,
"jsHeapTotalBytes": 4202496,
"scriptDurationMs": 414.44000000000005,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3181.6049999999905,
"styleRecalcs": 66,
"styleRecalcDurationMs": 14.241000000000003,
"layouts": 60,
"layoutDurationMs": 6.912,
"taskDurationMs": 1468.913,
"heapDeltaBytes": -1454580,
"heapUsedBytes": 59882908,
"domNodes": -280,
"jsHeapTotalBytes": 7405568,
"scriptDurationMs": 520.0169999999999,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3174.998999999957,
"styleRecalcs": 64,
"styleRecalcDurationMs": 13.387000000000002,
"layouts": 60,
"layoutDurationMs": 6.989999999999999,
"taskDurationMs": 1457.6899999999998,
"heapDeltaBytes": -4624628,
"heapUsedBytes": 56749024,
"domNodes": -284,
"jsHeapTotalBytes": 7143424,
"scriptDurationMs": 516.937,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2030.9570000000008,
"styleRecalcs": 8,
"styleRecalcDurationMs": 7.063,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 638.1179999999999,
"heapDeltaBytes": 6525320,
"heapUsedBytes": 67087356,
"domNodes": -276,
"jsHeapTotalBytes": 3997696,
"scriptDurationMs": 99.19600000000001,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2007.9399999999623,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.674,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 659.784,
"heapDeltaBytes": 5875888,
"heapUsedBytes": 67923468,
"domNodes": -275,
"jsHeapTotalBytes": 4521984,
"scriptDurationMs": 101.29599999999999,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 578.392000000008,
"styleRecalcs": 47,
"styleRecalcDurationMs": 10.062,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 389.56,
"heapDeltaBytes": -12166972,
"heapUsedBytes": 55790836,
"domNodes": 20,
"jsHeapTotalBytes": 21626880,
"scriptDurationMs": 117.22900000000001,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 564.7430000000213,
"styleRecalcs": 47,
"styleRecalcDurationMs": 9.978,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 389.66299999999995,
"heapDeltaBytes": -12150280,
"heapUsedBytes": 55827764,
"domNodes": 20,
"jsHeapTotalBytes": 21889024,
"scriptDurationMs": 117.325,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2006.1359999999695,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.9689999999999985,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 430.716,
"heapDeltaBytes": 3473716,
"heapUsedBytes": 71444144,
"domNodes": 20,
"jsHeapTotalBytes": 21102592,
"scriptDurationMs": 12.55,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2006.1080000000402,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.774000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 437.46999999999997,
"heapDeltaBytes": 3677264,
"heapUsedBytes": 71771068,
"domNodes": 20,
"jsHeapTotalBytes": 20578304,
"scriptDurationMs": 12.299000000000001,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1682.8669999999875,
"styleRecalcs": 75,
"styleRecalcDurationMs": 32.733,
"layouts": 16,
"layoutDurationMs": 3.88,
"taskDurationMs": 721.808,
"heapDeltaBytes": -5697124,
"heapUsedBytes": 62369088,
"domNodes": 63,
"jsHeapTotalBytes": 21102592,
"scriptDurationMs": 88.335,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1690.6159999999772,
"styleRecalcs": 76,
"styleRecalcDurationMs": 33.478,
"layouts": 16,
"layoutDurationMs": 4.274,
"taskDurationMs": 765.6039999999999,
"heapDeltaBytes": -20319696,
"heapUsedBytes": 47548496,
"domNodes": -273,
"jsHeapTotalBytes": 21229568,
"scriptDurationMs": 87.85,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-transition-enter",
"durationMs": 1383.4770000000276,
"styleRecalcs": 18,
"styleRecalcDurationMs": 29.566000000000003,
"layouts": 14,
"layoutDurationMs": 12.632000000000001,
"taskDurationMs": 894.3559999999999,
"heapDeltaBytes": 33300288,
"heapUsedBytes": 99514244,
"domNodes": 13673,
"jsHeapTotalBytes": 12058624,
"scriptDurationMs": 30.48600000000001,
"eventListeners": 2371,
"totalBlockingTimeMs": 127,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "viewport-pan-sweep",
"durationMs": 8247.356000000025,
"styleRecalcs": 250,
"styleRecalcDurationMs": 35.694,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4391.999999999999,
"heapDeltaBytes": 11136536,
"heapUsedBytes": 70972500,
"domNodes": -276,
"jsHeapTotalBytes": 8630272,
"scriptDurationMs": 1423.868,
"eventListeners": -128,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8232.483000000002,
"styleRecalcs": 250,
"styleRecalcDurationMs": 35.509,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4314.088,
"heapDeltaBytes": 10015032,
"heapUsedBytes": 68807344,
"domNodes": -275,
"jsHeapTotalBytes": 6008832,
"scriptDurationMs": 1360.028,
"eventListeners": -128,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 16071.600999999988,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16057.764,
"heapDeltaBytes": -54334860,
"heapUsedBytes": 154182692,
"domNodes": -8312,
"jsHeapTotalBytes": -17502208,
"scriptDurationMs": 493.61699999999996,
"eventListeners": -16387,
"totalBlockingTimeMs": 0,
"frameDurationMs": 18.333333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 16200.986000000057,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16176.085000000001,
"heapDeltaBytes": -61411348,
"heapUsedBytes": 166158736,
"domNodes": -8312,
"jsHeapTotalBytes": -15405056,
"scriptDurationMs": 512.708,
"eventListeners": -16387,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666763,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 19757.210999999985,
"styleRecalcs": 136,
"styleRecalcDurationMs": 14.948999999999991,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 19733.053,
"heapDeltaBytes": -49812496,
"heapUsedBytes": 176527644,
"domNodes": -8312,
"jsHeapTotalBytes": -13127680,
"scriptDurationMs": 836.569,
"eventListeners": -16383,
"totalBlockingTimeMs": 112,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 19886.469999999917,
"styleRecalcs": 135,
"styleRecalcDurationMs": 14.878000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 19855.162,
"heapDeltaBytes": -50565008,
"heapUsedBytes": 181980260,
"domNodes": -8312,
"jsHeapTotalBytes": -18112512,
"scriptDurationMs": 900.1289999999999,
"eventListeners": -16387,
"totalBlockingTimeMs": 227,
"frameDurationMs": 17.776666666666763,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "workflow-execution",
"durationMs": 458.07300000001305,
"styleRecalcs": 13,
"styleRecalcDurationMs": 18.342,
"layouts": 3,
"layoutDurationMs": 0.6489999999999998,
"taskDurationMs": 115.012,
"heapDeltaBytes": -16025236,
"heapUsedBytes": 51079168,
"domNodes": 130,
"jsHeapTotalBytes": 7471104,
"scriptDurationMs": 8.863,
"eventListeners": 67,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 459.2020000000048,
"styleRecalcs": 13,
"styleRecalcDurationMs": 19.434,
"layouts": 2,
"layoutDurationMs": 0.31000000000000016,
"taskDurationMs": 108.23100000000001,
"heapDeltaBytes": -16265272,
"heapUsedBytes": 50614928,
"domNodes": 119,
"jsHeapTotalBytes": 7995392,
"scriptDurationMs": 9.588999999999999,
"eventListeners": 65,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.800000000000182
}
]
} |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## cloud/1.48 #14520 +/- ##
=============================================
Coverage ? 69.15%
=============================================
Files ? 1659
Lines ? 85668
Branches ? 22880
=============================================
Hits ? 59241
Misses ? 26317
Partials ? 110
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Backport of #14235 to
cloud/1.48Automatically created by backport workflow.